declare i32 @getint()

declare void @putint(i32)

define i32 @main() {
label_entry:
  %op0 = alloca i32
  store i32 1, i32* %op0
  %op1 = alloca i32
  %op2 = call i32 @getint()
  store i32 %op2, i32* %op1
  br label %label3
label3:                                                ; preds = %label_entry, %label20
  %op4 = load i32, i32* %op0
  %op5 = icmp slt i32 %op4, 999999999
  br i1 %op5, label %label6, label %label11
label6:                                                ; preds = %label3
  %op7 = load i32, i32* %op0
  %op8 = load i32, i32* %op1
  %op9 = srem i32 %op7, %op8
  %op10 = icmp eq i32 %op9, 0
  br i1 %op10, label %label14, label %label17
label11:                                                ; preds = %label3
  %op12 = load i32, i32* %op1
  call void @putint(i32 %op12)
  %op13 = load i32, i32* %op0
  ret i32 %op13
label14:                                                ; preds = %label6
  %op15 = load i32, i32* %op0
  %op16 = add i32 %op15, 3
  store i32 %op16, i32* %op0
  br label %label20
label17:                                                ; preds = %label6
  %op18 = load i32, i32* %op0
  %op19 = add i32 %op18, 2
  store i32 %op19, i32* %op0
  br label %label20
label20:                                                ; preds = %label14, %label17
  br label %label3
}
